const router = require('koa-router');
const jwt = require('jsonwebtoken');

let routers = new router();

routers.post('/login', async (ctx, next) => {
  // 获取登录信息
  const {
    username,
    password
  } = ctx.request.body.params;
  // 判断是否为空
  if (username && password) {
    // 检查用户名密码
    if (username === '111' && password === "111") {
      // 生成token
      const token = generateToken();
      try {
        // 登录成功，返回token
        ctx.body = {
          'result': 'success',
          'code': 200,
          'token': token
        }
      } catch (error) {
        // 无法返回token，返回错误信息
        ctx.body = {
          'type': "ERROR",
          'code': 401,
          'message': error
        }
      }

    } else {
      // 信息有误，登录失败
      ctx.header = 400;
      ctx.body = {
        'type': "LOGIN_FAILED!",
        'code': 400,
        'message': '账号或密码错误!'
      }
    }
  } else {
    ctx.body = {
      'type': "LOGIN_FAILED!",
      'code': 400,
      'message': '账号和密码不能为空!'
    }
  }
});


// 读取私钥
const priCert = 'madapao';
// 生成token
function generateToken() {
  const created = Math.floor(Date.now() / 1000) + (30 * 60);
  const token = jwt.sign({
    data: 'createToken'
  }, priCert);
  return token;
}

module.exports = routers.routes()